Social Utility Grid

ABSTRACT

Information is gathered regarding a first party. Social relationships between the first party and other parties are determined by transforming the gathered information into the social relationships. Relationship types of the social relationships between the first party and the other parties are determined by transforming the gathered information into the relationship types. Relationship strengths of the social relationships between the first and the other parties are determined by transforming the gathered information into the relationship strengths. The social utility grid is generated based on the social relationships between the first party and the other parties, the relationship types of the social relationships, and the relationship strengths of the social relationships.

BACKGROUND

This application relates generally to the field of social networks. Morespecifically, the disclosure provided herein relates to creating asocial utility grid identifying relationships and providing socialnetwork services based on the social utility grid.

Social networking websites, such as FACEBOOK, LINKEDIN, and MYSPACE,enable users to identify, connect with, and communicate with friends.For example, at the outset, a first user and a second user may not beconnected within a social network. The first user may connect with thesecond user by transmitting a friend invitation to the second user. Thesecond user may accept or deny the friend invitation. If the second userdenies the friend invitation, then the first user and the second usermay remain unconnected within the social network. If the second useraccepts the friend invitation, then the first user and the second usermay be connected within the social network.

A given social network may include any number of users. In conventionalsocial networking websites, the relationship between any two users inthe social network is a binary representation. For example, the binaryrepresentation may indicate that two users are either friends ornon-friends. In some implementations, certain permissions may be grantedbased on the binary relationship. For example, when the first user andthe second user are not connected, the second user may be restrictedfrom viewing the first user's profile. At a later time when the firstuser and the second user connect, the second user may be allowed to viewthe first user's profile.

Although social networking websites traditionally simplify relationshipsas a binary representation, real-life relationships have much greatervariability. For example, a given individual may divide real-liferelationships between co-workers, close friends, family members, andnumerous others. However, many current implementations of socialnetworks do not support richer representations of relationships beyondthe traditional binary relationship.

SUMMARY

Embodiments of the disclosure presented herein include methods, systems,and computer-readable media for generating a social utility grid.According to one aspect, a method for generating a social utility gridis provided. According to the method, information is gathered regardinga first party. Social relationships between the first party and otherparties are determined by transforming the gathered information into thesocial relationships. Relationship types of the social relationshipsbetween the first party and the other parties are determined bytransforming the gathered information into the relationship types.Relationship strengths of the social relationships between the first andthe other parties are determined by transforming the gatheredinformation into the relationship strengths. The social utility grid isgenerated based on the social relationships between the first party andthe other parties, the relationship types of the social relationships,and the relationship strengths of the social relationships.

According to another aspect, a system for generating a social utilitygrid is provided. The system includes a memory and a processorfunctionally coupled to the memory. The memory stores a programcontaining code for generating a social utility grid. The processor isresponsive to computer-executable instructions contained in the programand configured to perform the following operations. Information isgathered regarding a first party. Social relationships between the firstparty and other parties are determined by transforming the gatheredinformation into the social relationships. Relationship types of thesocial relationships between the first party and the other parties aredetermined by transforming the gathered information into therelationship types. Relationship strengths of the social relationshipsbetween the first and the other parties are determined by transformingthe gathered information into the relationship strengths. The socialutility grid is generated based on the social relationships between thefirst party and the other parties, the relationship types of the socialrelationships, and the relationship strengths of the socialrelationships.

According to yet another aspect, a computer-readable medium havinginstructions stored thereon for execution by a processor to perform amethod for generating a social utility grid is provided. According tothe method, information is gathered regarding a first party. Socialrelationships between the first party and other parties are determinedby transforming the gathered information into the social relationships.Relationship types of the social relationships between the first partyand the other parties are determined by transforming the gatheredinformation into the relationship types. Relationship strengths of thesocial relationships between the first and the other parties aredetermined by transforming the gathered information into therelationship strengths. The social utility grid is generated based onthe social relationships between the first party and the other parties,the relationship types of the social relationships, and the relationshipstrengths of the social relationships.

Other systems, methods, and/or computer program products according toembodiments will be or become apparent to one with skill in the art uponreview of the following drawings and detailed description. It isintended that all such additional systems, methods, and/or computerprogram products be included within this description, be within thescope of the present invention, and be protected by the accompanyingclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a simplified diagram illustrating a network architectureconfigured to generate and implement a social utility grid, inaccordance with some embodiments.

FIG. 1B is a simplified diagram illustrating additional detailsregarding an exemplary information gathering module, in accordance withsome embodiments.

FIG. 2 is a diagram illustrating a graphical representation of anexemplary social utility grid, in accordance with some embodiments.

FIG. 3 is a flow diagram illustrating an exemplary method for generatinga social utility grid, in accordance with some embodiments.

FIG. 4 is a flow diagram illustrating an examplary method forimplementing a social utility grid, in accordance with some embodiments.

FIG. 5 is a block diagram illustrating an exemplary system configured togenerate and implement a social utility grid, in accordance with someembodiments.

DETAILED DESCRIPTION

The following detailed description is directed to methods, systems, andcomputer-readable media for generating and implementing a social utilitygrid. As used herein, a social utility grid is a suitable data structurethat specifies relationships between individual users, groups of users,and/or organizations. The social utility grid may be automaticallygenerated by analyzing various information sources from whichrelationships can be inferred. That is, the social utility grid maymodel the relationships without any or with limited human interaction.When the social utility grid is generated, communications andinformation access may be automatically customized based on therelationships specified by the social utility grid.

While the subject matter described herein is presented in the generalcontext of program modules that execute in conjunction with theexecution of an operating system and application programs on a computersystem, those skilled in the art will recognize that otherimplementations may be performed in combination with other types ofprogram modules. Generally, program modules include routines, programs,components, data structures, and other types of structures that performparticular tasks or implement particular abstract data types. Moreover,those skilled in the art will appreciate that the subject matterdescribed herein may be practiced with other computer systemconfigurations, including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like.

In the following detailed description, references are made to theaccompanying drawings that form a part hereof, and which are shown byway of illustration, specific embodiments, or examples. Referring now tothe drawings, in which like numerals represent like elements through theseveral figures, a computing system and methodology for providing socialnetwork services will be described. In particular, FIG. 1A illustrates asimplified network architecture 100 configured to generate and implementa social utility grid according to some embodiments. The networkarchitecture 100 includes a server computer 102 and client computer 104coupled via a network 106. The server computer 102 includes aninformation gathering module 108, a social utility grid generator 110, asocial utility grid 112, and a communications server module 114. Theclient computer 104 includes a communications client module 116, whichis configured to communicate with the communications server module 114via the network 106, such as a local area network (“LAN”) or theInternet.

According to embodiments, the information gathering module 108 isconfigured to gather relationship information from a variety of sources.In particular, the relationship information may include any measurableinformation from which a relationship between two or more clients can beidentified explicitly and/or inferred. As used herein, a client mayrefer to a single user, a group of users, or an organization. Forexample, the relationship information may include communications logs,such as call logs, call detail records (“CDR”), email logs, text messagelogs, instant message logs, web server logs, mobile network tower logs,device mobile tower logs, device WIFI access point (“AP”) logs, deviceglobal positioning system (“GPS”) logs, device BLUETOOTH logs, and thelike. The communications logs may establish a relationship between theparties involved in the communications. Other examples of relationshipinformation may include, but are not limited to, credit cardtransactions, monthly statements (e.g., bills), address books,calendars, photos, videos, email messages, a blog posting, GPSbreadcrumb trails, and the like. The relationship information may begathered as needed “on the fly” or retrieved from a data store.Additional details regarding the information gathering module 108 aredescribed in greater detail below with respect to FIG. 1B.

In some embodiments, a user may reject relationships that areautomatically identified or inferred by the information gathering module108. For example, communication logs may indicate frequentcommunications between a user and a utility company by way of phonecalls, emails, and the like. As a result, the information gatheringmodule 108 may incorrectly infer a strong positive relationship betweenthe user and the utility company based on the frequent communications.In this example, the user may reject or re-characterize theautomatically identified or inferred relationship to the utilitycompany.

According to embodiments, the social utility grid generator 110 isconfigured to generate the social utility grid 112 based on therelationship information gathered by the information gathering module108. In some embodiments, the social utility grid 112 may be embodied asa graph in which nodes represent clients and edges connecting the nodesrepresent a relationship between the corresponding nodes. In furtherembodiments, the edges may also be weighted in order to representvarying levels of relationships (e.g., a distant friend, a closerfriend, etc.) between the clients. This weight may be referred to hereinas “relationship strength.” The relationship strength may be representednumerically within a range (e.g., 1 to 100 where 1 represents the lowestrelationship strength and 100 represents the highest relationshipstrength). In even further embodiments, the edges may also identify thekind of relationship (e.g., friend, co-worker, family, church friend,parent of child's friend, supervisor, subordinate, priest, congregant,vendor, supplier, customer, partner, etc.) between the clients. Thiskind of relationship may be referred to herein as “relationship type.”In further embodiments, the edges may also identify the relationshipcontext (e.g., church building committee, Monday night bowling league,English Literature 101 class, parent-teacher association (“PTA”),photography club, Fred's 2009 birthday bash party, etc.) between theclients. An example of the social utility grid 112 is illustrated inFIG. 2 and is described in greater detail below.

The social utility grid generator 110 may identify and/or inferrelationships for the social utility grid 112 by analyzing the gatheredrelationship information. In particular, the social utility gridgenerator 110 may identify and/or infer various criteria indicating aparticular relationship. Criteria may refer to any measureablecharacteristics related to the relationship. These criteria may indicate(1) that a relationship between two or more clients exists, (2) therelationship strength of the relationship, (3) the relationship type,and/or (4) the relationship context. The social utility grid generator110 may then aggregate multiple criteria to identify and/or infer therelationships and generate the social utility grid 112. In amathematical context, the relationship strength and the relationshiptype may be represented as dimensions, and the relationship strength mayrepresent values to those dimensions.

In a first example of criteria, communications made during businesshours may indicate a co-worker relationship, while a communications madeduring evening hours may indicate a personal relationship, such asfamily or friends. In a second example, emails between work emailaddresses and phone calls between work telephone numbers may indicate aco-worker relationship, while emails between personal email addressesand phone calls between personal telephone numbers may indicate apersonal relationship. In a third example, emails and telephone callsmay indicate a business relationship, while text messages and instantmessages may indicate a personal relationship. In a fourth example, ahigher frequency and duration of calls may indicate a closerrelationship, while a lower frequency and duration of calls may indicatea more distant relationship. In a fifth example, categories in anaddress book under which contacts are organized may indicate the kindsof relationships with respect to the contacts. In a sixth example, aparty calendar invitation sent to multiple recipients may be combinedwith pictures taken at the party. The pictures may be analyzed todetermine the invited recipients who attended the party. Partyattendance may indicate relationships between the invited recipients,and the party itself may provide relationship strength, relationshipcontext, and relationship type. In a seventh example, address bookentries may be correlated with location information (e.g., via a globalpositioning system (“GPS”) device or other suitable means) to determineproximity frequency and duration. Proximity frequency and duration canbe a measure of relationship strength. When combined with additionalinformation, proximity frequency and duration may be used to assessrelationship type and relationship context. It should be appreciatedthat the aforementioned examples of criteria are merely illustrative andare not intended to be limiting. Other criteria from a variety of otherinformation sources may be similarly retrieved and utilized ascontemplated by those skilled in the art.

In some embodiments, the communications server module 114 is configuredto host a website 118, and the communications client module 116 isconfigured to access the website 118 via the network 106. In this case,the communications client module 116 may include a web browser 120. Forexample, the website 118 may be a social networking website. Thecommunications server module 114 may customize communications and/orlimit access to certain content on the website 118 based on therelationships specified by the social utility grid 112. In particular,the communications server module 114 may customize communications on thewebsite 118 based on (1) the identification of a relationship betweentwo or more clients, (2) the relationship strength of the relationship,(3) the relationship type, and/or (4) the relationship context.

In a first example of an implementation of the social utility grid 112,a user may limit instant messages from only close friends with a minimumrelationship strength. In a second example, a user may limit access tocertain pictures to only family and closer friends (i.e., relationshipstrength and relationship type). In a third example, a user may limitfamily to view only a portion of the user's calendar related to personalactivities and limit co-workers to view only a portion of the user'scalendar related to work activities (i.e., relationship type). In afourth example, a user may schedule a church function on the calendar ata given date and time. The user may limit other church members to accessthe user's location (e.g., via the user's cellular device) only aroundthe given date and time of the church function (i.e., relationshipcontext). In a fifth example, a user may limit access to a telephonenumber or other profile information to only first and second orderfriends. In a sixth example, a user may reject all email addressed to apersonal email account when the sender's relationship strength,relationship type, and/or relationship context is insufficient to allowemails to pass through. It should be appreciated that the aforementionedexamples of customizations are merely illustrative and are not intendedto be limiting. Other customizations may be similarly utilized ascontemplated by those skilled in the art.

It should further be appreciated that the website 118, such as a socialnetworking website, is merely an illustrative application of the socialutility grid 112. Other applications of the social utility grid 112 maybe contemplated by those skilled in the art. In particular, anycommunications modality utilizing customizations to permit and/orrestrict access may implement the social utility grid 112. Examples ofsuch communications modalities include, but are not limited to,telephone calls, emails, text messages, and instant messaging. Further,the social utility grid 112 may be implemented to control access toinformation and functionality provided by the website 118 and othersuitable applications.

Referring now to FIG. 1B, additional details regarding the informationgathering module 108 from FIG. 1A is shown, in accordance with someembodiments. As illustrated in FIG. 1B, the information gathering module108 includes a network information collection module 132, a deviceinformation collection module 134, and an application informationcollection module 136. The network information collection module 132 maybe configured to collect relationship information from network-basedsources, such as CDR, deep packet inspection (“DPI”), web usage trackingsystems, and the like. The network information collection module 132 maycollect relationship information from landline telephone carriers,mobile cellular carriers, broadband network providers, Internet accessproviders, Internet service providers, Internet websites, and/or thelike.

The device information collection module 134 may be configured tocollect device-based relationship information from processor-baseddevices, such as computers, mobile devices, and the like, coupled to thenetwork 106. Although the device information collection module 134 isshown as being embodied on the server computer 102, at least part of thedevice information collection module 134 may be implemented within thedevice itself. The decision as to whether to implement at least part ofthe device information collection module 134 within the device maydepend on design tradeoffs between privacy, battery life, completeness,and complexity.

The application information collection module 136 may be configured tocollect relationship information from software applications. Thesesoftware applications may be executed in a cloud-based computingenvironment and/or as a traditional client-side application. Examples ofsoftware applications may include address book applications, calendarapplications, photo applications, video applications, emailapplications, and the like. In some embodiments, the applicationinformation collection module 136 may collect relationship informationfrom storage devices utilized by the software applications to storeapplication-related data.

Referring now to FIG. 2, an illustrative example of the social utilitygrid 112 is shown. In some embodiments, the social utility grid 112 is agraph including a plurality of nodes connected by a plurality of edges.The nodes may specify the clients, while the edges may specifyrelationships between the clients.

As illustrated in FIG. 2, the nodes in the social utility grid 112include users 202A, 202B, 202C, 202D, 202E, a group of users 204, and anorganization 206. The first user 202A is connected to the organization206 as indicated by a first edge 208A and the group of users 204 asindicated by a second edge 208B. The first user 202A is furtherconnected to a second user 202B, a third user 202C, and a fourth user202D as indicated by a third edge 208C, a fourth edge 208D, and a fifthedge 208E, respectively. The third user 202C is also connected to afifth user 202E as indicated by a sixth edge 208F. The users 202A, 202B,202C, 202D, 202E may be collectively referred to as users 202. The edges208A, 208B, 208C, 20D, 208E, 208F may be collectively referred to asedges 208.

According to some embodiments, each of the edges 208 is associated witha weight, a type, and a context. For example, the third edge 208C isassociated with a first weight 210A, a first type 212A, and a firstcontext 214A, and the fourth edge 208D is associated with a secondweight 210B, a second type 212B, and a second context 214B. Further, thefifth edge 208E is associated with a third weight 210C, a third type212C, and a third context 214C. In the example illustrated in FIG. 2,the weight refers to a number between 1 and 100 specifying relationshipstrength between the users connected by the corresponding edges 208. Thetype refers to a relationship type specifying the type of relationshipbetween the users connected by the corresponding edges 208. For the sakeof illustration, the relationship types are represented by a letter A,B, C, or D in FIG. 2. The context refers to a relationship contextspecifying the context of the relationship between the users connectedby the corresponding edges 208. For the sake of illustration, therelationship contexts are represented by a letter E, F, G, H, or I inFIG. 2.

As previously described, the first user 202A is connected to the seconduser 202B, the third user 202C, and the fourth user 202D. According tothe types 212A, 212B, 212C, the relationship type between the first user202A and each of the users 202B, 202C, 202D are the same. For example,the users 202B, 202C, 202D may each be co-workers with the first user202A. According to the contexts 214A, 214B, 214C, the first user 202Ahas a relationship context, G, with the second user 202B and arelationship context, H, with the users 202C, 202D. For example, thefirst user 202A may have previously worked with the second user 202B inan old internship, while the first user 202A now works with the users202C, 202D in a current position. According to the weights 210A, 210B,210C, the first user 202A may have a stronger relationship with thethird user 202C than with the second user 202B and a strongerrelationship with the second user 202B than with the fourth user 202D.

According to embodiments, relationships may be identified by order,which refers to the closeness between parties (i.e., how closely theparties are related). In particular, relationships may be referred to byfirst order, second order, third order, and so forth. The first orderrefers to direct relationships between two parties. For example, thefirst user 202A and the third user 202C have a first order relationship.The second order refers to indirect relationships in which a first partyis connected to a second party through a third party. That is, no directconnection exists between the first party and the second party. Forexample, the first user 202A and the fifth user 202E have a second orderrelationship because the first user 202A is connected to the fifth user202E only through the third user 202C. Higher order relationshipsinvolve indirect relationships in which additional parties connect afirst party and a second party (e.g., a third order relationshipinvolves two parties connected the first party and the second party, afourth order relationship involves three parties connecting the firstparty and the second party, etc.).

Referring now to FIGS. 3 and 4, additional details will be providedregarding some embodiments described herein for generating andimplementing the social utility grid 112. In particular, FIG. 3 is aflow diagram illustrating an examplary method for generating the socialutility grid 112, in accordance with some embodiments. FIG. 4 is a flowdiagram illustrating an examplary method for implementing the socialutility grid 112, in accordance with some embodiments.

It should be appreciated that the logical operations described hereinare implemented (1) as a sequence of computer implemented acts orprogram modules running on a computing system and/or (2) asinterconnected machine logic circuits or circuit modules within thecomputing system. The implementation is a matter of choice dependent onthe performance and other requirements of the computing system.Accordingly, the logical operations described herein are referred tovariously as states operations, structural devices, acts, or modules.These operations, structural devices, acts, and modules may beimplemented in software, in firmware, in special purpose digital logic,and any combination thereof. It should be appreciated that more or feweroperations may be performed than shown in the figures and describedherein. These operations may also be performed in a different order thanthose described herein.

Referring now to FIG. 3, a method 300 begins at operation 302, where theinformation gathering module 108 gathers information regarding a firstparty. In particular, the information gathering module 108 may gatherany information with which social relationships between the first partyand other parties can be identified and/or inferred. According to someembodiments, the information gathered by the information gatheringmodule 108 is provided to the social utility grid generator 110. Whenthe information gathering module 108 gathers the information regardingthe first party, the method 300 proceeds to operations 304, 305, 306,308.

At operations 304, 305, 306, 308, the social utility grid generator 110determines various data that are used to populate the social utilitygrid 112. At operation 304, the social utility grid generator 110determines social relationships between the first and other parties. Atoperation 305, the social utility grid generator 110 determinesrelationship contexts of the social relationships between the first andother parties. At operation 306, the social utility grid generator 110determines relationship types of the social relationships between thefirst and other parties. At operation 308, the social utility gridgenerator 110 determines relationship strengths of the socialrelationships between the first and other parties.

The social utility grid generator 110 may transform the informationgathered by the information gathering module 108 into the socialrelationships, the relationship contexts of the social relationships,the relationship types of the social relationships, and therelationships strengths of the social relationships between the firstparty and other parties. In particular, the social utility gridgenerator 110 may identify and/or infer the social relationships, therelationship contexts of the social relationships, the relationshiptypes of the social relationships, and the relationships strengths ofthe social relationships between the first party and other parties basedon the information gathered by the information gathering module. Whenthe social utility grid generator 110 determines the socialrelationships, the relationship contexts of the social relationships,the relationship types of the social relationships, and therelationships strengths of the social relationships between the firstparty and other parties, the method 300 proceeds to operation 310, wherethe social utility grid generator 110 generates the social utility grid112 based on the social relationships, the relationship contexts, therelationship types of the social relationships, and the relationshipsstrengths of the social relationships between the first party and otherparties.

Referring now to FIG. 4, a method 400 begins at operation 402, where thecommunications server module 114 receives rules identifying arrangementsof the social relationships, as well as the relationship contexts, therelationship types, and the relationships strengths of the socialrelationships between two or more parties. In some embodiments, theserules may include communication rules permitting, denying, or otherwisecontrolling communications between the two or more parties. For example,the communication rules may include rules specifying whether certainparties can contact a first party through various communication means,such as phone calls, instant messages, text messages, and the like. Infurther embodiments, these rules may include access rules permitting,denying, or otherwise controlling access to certain information orfunctionality associated with a first party by other parties. If therules include communication rules, the method 400 proceeds to operations404, 405, 406, 408, 410. If the rules include access rules, the method400 proceeds to operations 412, 413, 414, 416, 418.

At operation 404, the communications server module 114 receives arequest from a requesting party to communicate with a first party. Forexample, the requesting party may attempt to initiate a communication,such as a message or an instant message through the website 118, to thefirst party. When the communications server module 114 receives therequest from the requesting party to communicate with the first party,the method 400 proceeds to operation 405, where the communicationsserver module 114 determines in real-time or near real-time therelationship strength, the relationship context, and/or the relationshiptype between the requesting party and the first party. Thecommunications server module 114 may determine the relationshipstrength, the relationship context, and/or the relationship type basedon the type of request and various available information, such ascalendar items and location information (e.g., proximity). For example,the first party and the requesting party may belong to a church groupthat is sponsoring an event at a remote location. In this example, thefirst party may be very familiar with the remote location of the event.As such, the first party may grant members of the church group,including the requesting party, the ability to contact the first partybased on personal calendar items and/or proximity information. Inparticular, the personal calendar items may be utilized to grant accessto church members to contact the first party near the day and time ofthe event. Additionally or in the alternative, the proximity informationmay be utilized to grant access to people to contact the first partywhen those people are physically near the first party. The method 400then proceeds to operation 406, where the communications server module114 determines whether the requesting party is permitted to contact thefirst party based on the communication rules and the social utility grid112. The communications server module 114 may also determine whether therequesting party is permitted to contact the first party based furtheron the real-time or near real-time determination of the relationshipstrength, the relationship context, and/or the relationship type betweenthe requesting party and the first party.

As previously described, the social utility grid 112 may also specifythe social relationships, the relationship contexts, the relationshiptypes of the social relationships, and the relationships strengths ofthe social relationships between the first party and other parties.Thus, by mapping the communication rules to the social utility grid 112,the communications server module 114 can determine whether therequesting party is permitted to contact the first party. For example,the communication rules may specify that only co-workers with a minimumrelationship strength of 50 can contact send private messages to thefirst party. In this example, the communications server module 114 mayanalyze the social utility grid 112 to determine (a) whether therequesting party is a co-worker, and if so, (b) whether the requestingparty has a relationship strength greater than 50.

If the communications server module 114 determines that the requestingparty is permitted to contact the first party, then the method 400proceeds to operation 408. At operation 408, the communications servermodule 114 enables the requested communication by the requesting partyto the first party. If the communications server module 114 determinesthat the requesting party is not permitted to contact the first party,then the method 400 proceeds to operation 410. At operation 410, thecommunications server module 114 restricts the requested communicationby the requesting party to the first party.

At operation 412, the communications server module 114 receives arequest from a requesting party to access information or functionalityassociated with the first party. In one example, the requesting partymay attempt to view a photo album controlled by the first party. Inanother example, the requesting party may attempt to post a publicbulletin board on the first party's web page. When the communicationsserver module 114 receives the request from the requesting party toaccess information or functionality associated with the first party, themethod 400 proceeds to operation 414, where the communications servermodule 114 determines whether the requesting party is permitted toaccess the information or functionality associated with the first partybased on the access rules and the social utility grid 112.

By mapping the communication rules to the social utility grid 112, thecommunications server module 114 can determine whether the requestingparty is permitted to access the information or functionality associatedwith the first party. For example, the access rules may specify thatonly family members with a minimum relationship strength of 60 can viewthe photo album controlled by the first party. In this example, thecommunications server module 114 may analyze the social utility grid 112to determine (a) whether the requesting party is a family member, and ifso, (b) whether the requesting party has a relationship strength greaterthan 60.

If the communications server module 114 determines that the requestingparty is permitted to access the information or functionality associatedwith the first party, then the method 400 proceeds to operation 416. Atoperation 416, the communications server module 114 enables therequesting party to access the information or functionality associatedwith the first party. If the communications server module 114 determinesthat the requesting party is not permitted to access the information orfunctionality associated with the first party, then the method 400proceeds to operation 418. At operation 418, the communications servermodule 114 restricts the requested communication to access theinformation or functionality associated with the first party.

FIG. 5 and the following discussion are intended to provide a brief,general description of a suitable computing environment in whichembodiments may be implemented. While embodiments will be described inthe general context of program modules that execute in conjunction withan application program that runs on an operating system on a computersystem, those skilled in the art will recognize that the embodiments mayalso be implemented in combination with other program modules.

Generally, program modules include routines, programs, components, datastructures, and other types of structures that perform particular tasksor implement particular abstract data types. Moreover, those skilled inthe art will appreciate that embodiments may be practiced with othercomputer system configurations, including hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers, and the like. Theembodiments may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

FIG. 5 is a block diagram illustrating a computer system 500 configuredto generate and implement the social utility grid 112, in accordancewith embodiments. Examples of the computer system 500 may include theserver computer 102 and the client computer 104. The computer system 500includes a processing unit 502, a memory 504, one or more user interfacedevices 506, one or more input/output (“I/O”) devices 508, and one ormore network devices 510, each of which is operatively connected to asystem bus 512. The bus 512 enables bi-directional communication betweenthe processing unit 502, the memory 504, the user interface devices 506,the I/O devices 508, and the network devices 510.

The processing unit 502 may be a standard central processor thatperforms arithmetic and logical operations, a more specific purposeprogrammable logic controller (“PLC”), a programmable gate array, orother type of processor known to those skilled in the art and suitablefor controlling the operation of the server computer. Processing unitsare well-known in the art, and therefore not described in further detailherein.

The memory 504 communicates with the processing unit 502 via the systembus 512. In one embodiment, the memory 504 is operatively connected to amemory controller (not shown) that enables communication with theprocessing unit 502 via the system bus 512. The memory 504 includes anoperating system 516 and one or more program modules 518, according toexemplary embodiments. Examples of operating systems, such as theoperating system 516, include, but are not limited to, WINDOWS, WINDOWSCE, and WINDOWS MOBILE from MICROSOFT CORPORATION, LINUX, SYMBIAN fromSYMBIAN LIMITED, BREW from QUALCOMM CORPORATION, MAC OS from APPLECORPORATION, and FREEBSD operating system. Examples of the programmodules 518 include the information gathering module 108, the socialutility grid generator 110, the communications server module 114, andthe communications client module 116. In some embodiments, the programmodules 518 are embodied in computer-readable media containinginstructions that, when executed by the processing unit 502, performsthe method 300 for generating the social utility grid 112, as describedin greater detail above with respect to FIG. 3. In further embodiments,the program modules 518 are embodied in computer-readable mediacontaining instructions that, when executed by the processing unit 502,performs the method 400 for implementing the social utility grid 112, asdescribed in greater detail above with respect to FIG. 4. According toembodiments, the program modules 518 may be embodied in hardware,software, firmware, or any combination thereof.

By way of example, and not limitation, computer-readable media maycomprise computer storage media and communication media. Computerstorage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules, or other data. Computer storage media includes, but isnot limited to, RAM, ROM, Erasable Programmable ROM (“EPROM”),Electrically Erasable Programmable ROM (“EEPROM”), flash memory or othersolid state memory technology, CD-ROM, digital versatile disks (“DVD”),or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and which can beaccessed by the computer system 500.

The user interface devices 506 may include one or more devices withwhich a user accesses the computer system 500. The user interfacedevices 506 may include, but are not limited to, computers, servers,personal digital assistants, cellular phones, or any suitable computingdevices. The I/O devices 508 enable a user to interface with the programmodules 518. In one embodiment, the I/O devices 508 are operativelyconnected to an I/O controller (not shown) that enables communicationwith the processing unit 502 via the system bus 512. The I/O devices 508may include one or more input devices, such as, but not limited to, akeyboard, a mouse, or an electronic stylus. Further, the I/O devices 508may include one or more output devices, such as, but not limited to, adisplay screen or a printer.

The network devices 510 enable the computer system 500 to communicatewith other networks or remote systems via the network 106. Examples ofthe network devices 510 may include, but are not limited to, a modem, aradio frequency (“RF”) or infrared (“IR”) transceiver, a telephonicinterface, a bridge, a router, or a network card. The network 106 mayinclude a wireless network such as, but not limited to, a Wireless LocalArea Network (“WLAN”) such as a WI-FL network, a Wireless Wide AreaNetwork (“WWAN”), a Wireless Personal Area Network (“WPAN”) such asBLUETOOTH, a Wireless Metropolitan Area Network (“WMAN”) such a WiMAXnetwork, or a cellular network. Alternatively, the network 106 may be awired network such as, but not limited to, a Wide Area Network (“WAN”)such as the Internet, a Local Area Network (“LAN”) such as the Ethernet,a wired Personal Area Network (“PAN”), or a wired Metropolitan AreaNetwork (“MAN”).

Although the subject matter presented herein has been described inconjunction with one or more particular embodiments and implementations,it is to be understood that the embodiments defined in the appendedclaims are not necessarily limited to the specific structure,configuration, or functionality described herein. Rather, the specificstructure, configuration, and functionality are disclosed as exampleforms of implementing the claims.

The subject matter described above is provided by way of illustrationonly and should not be construed as limiting. Various modifications andchanges may be made to the subject matter described herein withoutfollowing the example embodiments and applications illustrated anddescribed, and without departing from the true spirit and scope of theembodiments, which is set forth in the following claims.

1. A computer-implemented method for generating a social utility grid,the method comprising computer-implemented operations for: gatheringinformation regarding a first party; determining, through a computer,social relationships between the first party and other parties bytransforming the gathered information into the social relationships;determining relationship types of the social relationships between thefirst party and the other parties by transforming the gatheredinformation into the relationship types; determining relationshipstrengths of the social relationships between the first and the otherparties by transforming the gathered information into the relationshipstrengths; and generating, through the computer, the social utility gridbased on the social relationships between the first party and the otherparties, the relationship types of the social relationships, and therelationship strengths of the social relationships.
 2. Thecomputer-implemented method of claim 1, the method comprising furthercomputer-implemented operations for: determining relationship contextsof the social relationships between the first party and the otherparties by transforming the gathered information into the relationshipcontexts; and generating, through the computer, the social utility gridbased on the social relationships between the first party and the otherparties, the relationship contexts of the social relationships, therelationship types of the social relationships, and the relationshipstrengths of the social relationships.
 3. The computer-implementedmethod of claim 2, the method comprising further computer-implementedoperations for: receiving communication rules identifying arrangementsof social relationships, relationship contexts, relationship types, andrelationship strengths permitted to contact the first party; receiving arequest from a requesting party to contact the first party; determiningwhether the requesting party is permitted to contact the first partybased on the communication rules and the social utility grid; inresponse to determining that the requesting party is permitted tocontact the first party based on the communication rules and the socialgrid, enabling the requesting party to contact the first party; and inresponse to determining that the requesting party is not permitted tocontact the first party based on the communication rules and the socialgrid, restricting the requesting party to contact the first party. 4.The computer-implemented method of claim 3, wherein the communicationrules specify rules governing communications via at least one of mobilecommunications, short message service (SMS), instant messenger, email,and social network messages.
 5. The computer-implemented method of claim2, the method comprising further computer-implemented operations for:receiving access rules identifying arrangements of social relationships,relationship contexts, relationship types, and relationship strengthspermitted to access information or functionality associated with thefirst party; receiving a request from a requesting party to access theinformation or functionality associated with the first party;determining whether the requesting party is permitted to access theinformation or functionality associated with the first party based onthe access rules and the social utility grid; in response to determiningthat the requesting party is permitted to access the information orfunctionality associated with the first party based on the access rulesand the social utility grid, enabling the requesting party to access theinformation or functionality associated with the first party; and inresponse to determining that the requesting party is not permitted toaccess the information or functionality associated with the first partybased on the access rules and the social utility grid, restricting therequesting party to access the information or functionality associatedwith the first party.
 6. The computer-implemented method of claim 2,wherein the first party and the other parties each comprise at least oneof a person, a group of people, and an organization; and wherein thesocial utility grid comprises a graph, the graph comprising nodes andedges connecting the nodes, the nodes representing the first party andthe other parties, the edges representing the social relationshipsbetween the nodes, weights of the edges representing the relationshipstrength; and wherein the social utility grid further comprisesrepresentations of the relationship types and the relationship contexts.7. The computer-implemented method of claim 1, wherein determining,through a computer, social relationships between the first party andother parties comprises determining, through the computer, socialrelationships between the first party and the other parties by inferringthe social relationships based on the gathered information.
 8. A systemfor generating a social utility grid, comprising: a memory for storing aprogram containing code for generating a social utility grid; aprocessor functionally coupled to the memory, the processor beingresponsive to computer-executable instructions contained in the programand configured to: gather information regarding a first party, determinesocial relationships between the first party and other parties bytransforming the gathered information into the social relationships,determine relationship types of the social relationships between thefirst party and the other parties by transforming the gatheredinformation into the relationship types, determine relationshipstrengths of the social relationships between the first and the otherparties by transforming the gathered information into the relationshipstrengths, and generate the social utility grid based on the socialrelationships between the first party and the other parties, therelationship types of the social relationships, and the relationshipstrengths of the social relationships.
 9. The system of claim 8, theprocessor being responsive to further computer-executable instructionscontained in the program and further configured to: determinerelationship contexts of the social relationships between the firstparty and the other parties by transforming the gathered informationinto the relationship contexts, and generate the social utility gridbased on the social relationships between the first party and the otherparties, the relationship contexts of the social relationships, therelationship types of the social relationships, and the relationshipstrengths of the social relationships.
 10. The system of claim 9, theprocessor being responsive to further computer-executable instructionscontained in the program and further configured to: receivecommunication rules identifying arrangements of social relationships,relationship contexts, relationship types, and relationship strengthspermitted to contact the first party, receive a request from arequesting party to contact the first party, determine whether therequesting party is permitted to contact the first party based on thecommunication rules and the social utility grid, in response todetermining that the requesting party is permitted to contact the firstparty based on the communication rules and the social grid, enable therequesting party to contact the first party, and in response todetermining that the requesting party is not permitted to contact thefirst party based on the communication rules and the social grid,restrict the requesting party to contact the first party.
 11. The systemof claim 10, wherein the communication rules specify rules governingcommunications via at least one of mobile communications, short messageservice (SMS), instant messenger, email, and social network messages.12. The system of claim 9, the processor being responsive to furthercomputer-executable instructions contained in the program and furtherconfigured to: receive access rules identifying arrangements of socialrelationships, relationship contexts, relationship types, andrelationship strengths permitted to access information or functionalityassociated with the first party; receive a request from a requestingparty to access the information or functionality associated with thefirst party; determine whether the requesting party is permitted toaccess the information or functionality associated with the first partybased on the access rules and the social utility grid; in response todetermining that the requesting party is permitted to access theinformation or functionality associated with the first party based onthe access rules and the social utility grid, enable the requestingparty to access the information or functionality associated with thefirst party; and in response to determining that the requesting party isnot permitted to access the information or functionality associated withthe first party based on the access rules and the social utility grid,restrict the requesting party to access the information or functionalityassociated with the first party.
 13. The system of claim 9, wherein thefirst party and the other parties each comprise at least one of aperson, a group of people, and an organization, and wherein the socialutility grid comprises a graph, the graph comprising nodes and edgesconnecting the nodes, the nodes representing the first party and theother parties, the edges representing the social relationships betweenthe nodes, weights of the edges representing the relationship strength;and wherein the social utility grid further comprises representations ofthe relationship types and the relationship contexts.
 14. Acomputer-readable medium having instructions stored thereon forexecution by a processor to provide a method for generating a socialutility grid, the method comprising: gathering information regarding afirst party; determining, through the processor, social relationshipsbetween the first party and other parties by transforming the gatheredinformation into the social relationships; determining relationshiptypes of the social relationships between the first party and the otherparties by transforming the gathered information into the relationshiptypes; determining relationship strengths of the social relationshipsbetween the first and the other parties by transforming the gatheredinformation into the relationship strengths; and generating, through theprocessor, the social utility grid based on the social relationshipsbetween the first party and the other parties, the relationship types ofthe social relationships, and the relationship strengths of the socialrelationships.
 15. The computer-readable medium of claim 14, the methodfurther comprising: determining relationship contexts of the socialrelationships between the first party and the other parties bytransforming the gathered information into the relationship contexts;and generating, through the processor, the social utility grid based onthe social relationships between the first party and the other parties,the relationships contexts of the social relationships, the relationshiptypes of the social relationships, and the relationship strengths of thesocial relationships.
 16. The computer-readable medium of claim 15, themethod further comprising: receiving communication rules identifyingarrangements of social relationships, relationship contexts,relationship types, and relationship strengths permitted to contact thefirst party; receiving a request from a requesting party to contact thefirst party; determining whether the requesting party is permitted tocontact the first party based on the communication rules and the socialutility grid; in response to determining that the requesting party ispermitted to contact the first party based on the communication rulesand the social grid, enabling the requesting party to contact the firstparty; and in response to determining that the requesting party is notpermitted to contact the first party based on the communication rulesand the social grid, restricting the requesting party to contact thefirst party.
 17. The computer-readable medium of claim 16, wherein thecommunication rules specify rules governing communications via at leastone of mobile communications, short message service (SMS), instantmessenger, email, and social network messages.
 18. The computer-readablemedium of claim 15, the method further comprising: receiving accessrules identifying arrangements of social relationships, relationshipcontexts, relationship types, and relationship strengths permitted toaccess information or functionality associated with the first party;receiving a request from a requesting party to access the information orfunctionality associated with the first party; determining whether therequesting party is permitted to access the information or functionalityassociated with the first party based on the access rules and the socialutility grid; in response to determining that the requesting party ispermitted to access the information or functionality associated with thefirst party based on the access rules and the social utility grid,enabling the requesting party to access the information or functionalityassociated with the first party; and in response to determining that therequesting party is not permitted to access the information orfunctionality associated with the first party based on the access rulesand the social utility grid, restricting the requesting party to accessthe information or functionality associated with the first party. 19.The computer-readable medium of claim 15, wherein the first party andthe other parties each comprise at least one of a person, a group ofpeople, and an organization; and wherein the social utility gridcomprises a graph, the graph comprising nodes and edges connecting thenodes, the nodes representing the first party and the other parties, theedges representing the social relationships between the nodes, weightsof the edges representing the relationship strength; and wherein thesocial utility grid further comprises representations of therelationship types and the relationship contexts.
 20. Thecomputer-readable medium of claim 14, wherein determining, through acomputer, social relationships between the first party and other partiescomprises determining, through the computer, social relationshipsbetween the first party and the other parties by inferring the socialrelationships based on the gathered information.